using Gateway.Infrastructure.AutoDI;
using Gateway.IQuery.Sign.Result;
using Gateway.IQuery.User.Request;
using Gateway.IQuery.User.Result;

namespace Gateway.IQuery.User;

/// <summary>
/// 用户查询服务
/// </summary>
public interface IUserQuery : IDependency
{
    /// <summary>
    /// 获取分页列表
    /// </summary>
    /// <param name="request"></param>
    /// <returns></returns>
    Task<PageResult<UserDetailResult>> GetPageList(UserPageListRequest request);

    /// <summary>
    /// 根据集合标识 获取 用户信息
    /// </summary>
    /// <param name="userIds"></param>
    /// <returns></returns>
    Task<List<UserDetailResult>> GetUserByUserIds(List<string> userIds);

    /// <summary>
    /// 获取所有有效的userid 
    /// </summary>
    /// <returns></returns>
    Task<List<string>> GetAllUserId();

    /// <summary>
    ///  获取用的登录信息
    /// </summary>
    /// <param name="userId">用户标识</param>
    /// <returns></returns>
    Task<LoginUserInfoResult> GetUserLoginInfo(string userId);
}